package cn.itsource.itsource.controller;

import cn.itsource.itsource.dto.LoginDto;
import cn.itsource.itsource.dto.RegisterDto;
import cn.itsource.itsource.service.IUserService;
import cn.itsource.itsource.util.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;


    @PostMapping("/login")
    @ResponseBody
    public AjaxResult login(@RequestBody LoginDto dto){

        return userService.login(dto);

    }

    @PostMapping("/register")
    public AjaxResult register(@RequestBody RegisterDto dto){
        userService.register(dto);
        return AjaxResult.success("注册成功");
    }


    //前端路径传参时，后台的接收方式：
    /*
        在url后面，接收一个  {变量名随机取}
               但是，在方法体中，接收参数时，@PathVariable("phone")中双引号里面的变量，必须要与url中定义的变量名相同
            eg: http://localhost/check/1/2/3
                @GetMapping("/check/{p1}/{p2}/{p3}
     */
    @GetMapping("/checkphone/{phone}")
    public AjaxResult checkphone(@PathVariable("phone") String tel){
        //这个方法有些特殊，如果手机号重复，要给重复的提示信息，如果成功了，也要给个提示，所以将提示信息交给service来定义
        return userService.checkphone(tel);
    }


    @GetMapping("/sendmobilecode/{phone}")
    public AjaxResult sendMobileCode(@PathVariable("phone") String phone){
        userService.sendMobileCode(phone);
        return AjaxResult.success("短信发送成功");

    }

}
